0133ef6230840109c0dc1e8b773a11dd196b7711,java/servers/src/org/xtreemfs/osd/operations/ReadOperation.java,ReadOperation,startRequest,#OSDRequest#,60
Before Change
}
// TODO(jdillmann): Use centralized method to check if a lease is required.
if (rq.getLocationList().getNumReplicas() > 1
&& ReplicaUpdatePolicies.isRwReplicated(rq.getLocationList().getReplicaUpdatePolicy())) {
rwReplicatedRead(rq, args);
} else {
final long snapVerTS = rq.getCapability().getSnapConfig() == SnapConfig.SNAP_CONFIG_ACCESS_SNAP? rq.getCapability().getSnapTimestamp(): 0;
After Change
return;
}
int numReplicas = rq.getLocationList().getNumReplicas();
String replicaUpdatePolicy = rq.getLocationList().getReplicaUpdatePolicy();
if (numReplicas > 1 && ReplicaUpdatePolicies.isRW(replicaUpdatePolicy)) {
rwReplicatedRead(rq, args);
} else if (numReplicas == 1 || ReplicaUpdatePolicies.isRO(replicaUpdatePolicy)) {
final long snapVerTS = rq.getCapability().getSnapConfig() == SnapConfig.SNAP_CONFIG_ACCESS_SNAP
? rq.getCapability().getSnapTimestamp() : 0;
master.getStorageStage().readObject(args.getFileId(), args.getObjectNumber(), sp, args.getOffset(),
args.getLength(), snapVerTS, rq, new ReadObjectCallback() {
@Override
public void readComplete(ObjectInformation result, ErrorResponse error) {
postRead(rq, args, result, error);
}
});
} else {
rq.sendError(ErrorType.ERRNO, POSIXErrno.POSIX_ERROR_EINVAL,
"Invalid ReplicaUpdatePolicy: " + replicaUpdatePolicy);
}
}